package com.laght.jdkdemo.jdk8demo.interfaceenhance;

/**
 * java 8 进行增强后可以定义：静态常量、抽象方法、默认方法、静态方法
 */
public interface InterfaceEnhanceDemo {
    //静态常量
    static String staticConstant = null;

    //抽象方法
    abstract void abstractMethod();

    /**
     * 默认方法
     * 用于后期增加新功能时，不需要将所有实现类再同时实现改方法
     * 默认方法可以被继承：实现类可以根据需要决定是否重写（通过实例调用）
     */
    default void defaultMethod(){
        System.out.println("我是接口中的默认方法");
    }

    /**
     * 静态方法
     * 为了方便接口的扩展
     * 静态方法不能被继承：实现类既不能调用也不能重写（只能通过(InterfaceEnhanceDemo.staticMethod)的方式调用）
     *
     */
    static void staticMethod(){
        System.out.println("我是接口中的静态方法");
    }
}
